package com.weyoung.common.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.weyoung.common.handler.AESEncryptHandler;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 用户基本信息实体类，对应数据库中的 user 表
 */
@Data
@TableName("user")
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UserDO {
    /**
     * 用户主键id，自增长唯一标识用户记录
     */
    @TableId(type = IdType.AUTO)
    @TableField("user_id")
    private Integer userId;

    /**
     * 家族id，用于标识用户所属家族
     */
    @TableField("family_id")
    private String familyId;

    /**
     * 用户名
     */
    @TableField("username")
    private String username;

    /**
     * 用户密码
     */
    @TableField(value = "password", typeHandler = AESEncryptHandler.class)
    private String password;

    /**
     * 用户角色
     */
    @TableField(value = "role", fill = FieldFill.INSERT)
    private String role;

    /**
     * 更新日期
     */
    @TableField(value = "update_date", fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    /**
     * 是否删除，0-未删除，1-已删除
     */
    @TableField(value = "is_deleted", fill = FieldFill.INSERT)
    private String isDeleted;

    /**
     * 创建日期
     */
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    private Date createDate;
    /**
     * 用户头像
     */
    @TableField("user_pic")
    private String userPic;

}
